import { request } from "../../request/index.js";
import regeneratorRuntime from '../../lib/runtime/runtime';
/**
 * 1.加入购物车
 *  1.1 绑定点击事件
 *  1.2 判断该商品是否已经存在购物车
 *        1.2.1 从缓存里面来拿数据 数组
 *  1.3 如果存在 需要让改商品数量 num++  动态添加一个属性 num
 *  1.4 如果不存在 需要把该商品添加大购物车中 缓存里面动态添加一个属性 num=1
 *  1.5 再把缓存数据 保存在本地
 * 
 */
Page({

  /**
   * 页面的初始数据
   * data 里面放的数据 都是要在页面展示的数据
   * 如果页面上不展示，就让他是一个全局的变量
   * 为了提高性能
   */
  data: {
    // 商品详情对象
    goodsObj: {},
    // 商品是否收藏
    isCollection: false
  },
  // 商品详情所有数据对象
  GoodsInfo: {},

  /**
   * 生命周期函数--监听页面加载
   */
  onShow: function () {
    let pages = getCurrentPages();
    let { options } = pages[pages.length - 1];
    console.log(options);
    let { goods_id } = options;
    this.getGoodsDetail(goods_id);

  },

  /**
   * 获取商品详情 数据
   */
  async getGoodsDetail(goods_id) {
    let goodsObj = await request({ url: '/goods/detail', data: { goods_id } });
    this.GoodsInfo = goodsObj;
    // 从缓存里面拿商品收藏数据
    let collection = wx.getStorageSync("collection") || [];
    let index = collection.findIndex(v=>v.goods_id === this.GoodsInfo.goods_id);
    if (index !== -1) {
      this.setData({
        isCollection: true
      })
    }
    console.log(goodsObj)
    this.setData({
      goodsObj: {
        goods_name: goodsObj.goods_name,
        goods_price: goodsObj.goods_price,
        // .webp 是谷歌公司的图片格式 为了适配 iPhone 手机 ，需要让后台程序员
        // 把图片格式改了，.jgp  // 临时 前端来改
        goods_introduce: goodsObj.goods_introduce.replace(/\.webp/g, '.jpg'),
        pics: goodsObj.pics
      }
    })
  },
  /**
   * 点击预览大图
   */
  handlePreviewImage(e) {
    // console.log(e);
    let current = e.currentTarget.dataset.url;
    let urls = this.GoodsInfo.pics.map(v => v.pics_mid_url);
    wx.previewImage({
      current,
      urls
    });

  },
  /**
   * 点击加入购物车
   */
  handleAddCart() {
    // 1 从缓存中拿购物车数据
    let cart = wx.getStorageSync("cart") || [];
    // 2. 缓存数组中查找该商品的下标，如果index！==-1 说明缓存中有该商品，否则没有
    let index = cart.findIndex(v => v.goods_id === this.GoodsInfo.goods_id)
    if (index !== -1) {
      // 说明缓存中有该商品,让该商品数量加1
      cart[index].num++;
    } else {
      // 缓存中没有该商品 动态添加一个商品数量属性 num 值是1
      this.GoodsInfo.num = 1;
      // 动态给一个是否选中 属性 checked = true
      this.GoodsInfo.checked = true;
      // 把该商品放入缓存里面
      cart.push(this.GoodsInfo);
    }
    // 3. 修改缓存中数据，把 cart 保存在缓存里面
    wx.setStorageSync("cart", cart);
    wx.showToast({
      title: '加入成功',
      icon: 'success',
      // 有了遮罩层 可以防止用户 暴力点击 防抖
      mask: true,
    });

  },
  /**
   * 点击收藏
   */
  handleCollection() {
    let collection = wx.getStorageSync("collection") || [];
    this.setData({
      isCollection: !this.data.isCollection
    });
    let { isCollection } = this.data;
    if (isCollection) {
      wx.showToast({
        title: '收藏成功',
        icon: 'success',
        mask: true
      });
      collection.push(this.GoodsInfo);

    } else {
      wx.showToast({
        title: '取消成功',
        icon: 'success',
        mask: true
      });
      let index = collection.findIndex(v => v.goods_id === this.GoodsInfo.goods_id);
      collection.splice(index, 1);
    }

    wx.setStorageSync("collection", collection);
  }


})